#pragma once

#include "topcvt_cfg.hpp"
#include "topcvt_buffer.hpp"
#include "topcvt_object.hpp"

namespace topcvt
{
    class TOPCVT_API PktProcessor
    {
    public:
        static PktObject& unpack(const string& buffer, string pktPath, PktObject& obj, map<string, string>& atx);
        static string pack(string pktPath, PktObject& obj,map<string, string>& atx);
    public:
        static PktObject& unpack(const string& buffer, RootCfg& cfg, PktObject& obj,map<string, string>& atx);
        static PktObject& unpack(ByteBuffer& bb, RootCfg& cfg, PktObject& obj, map<string, string>& atx);
        static string pack(RootCfg& cfg,PktObject& obj , map<string, string>& atx);
    };
};